const {
    createMoveAbout,
    findOneMoveAboutById,
    updateMoveAbout,
    findMoveAboutByPage
} = require("../controller/moveAboutController");
const {validateFunc} = require("../utils/tools");
const {ValidationError} = require("../utils/customError");


// 发布招募信息
exports.addMoveAbout = async (moveAboutInfo) => {
    const rule = {
        enterprise:{
            isEnterprise: true,
            presence: false,
            type: "string"
        },
        title: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        }, // 旅店名
        avatar: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        }, //  企业头像
        address: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        }, // 客栈具体地址
        province: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        }, // 客栈省份
        introduce: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        },// 客栈介绍
        name: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        },// 招募人姓名
        number: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "integer"
        }, // 招募人数
        phone: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        }, // 企业联系电话
        content: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        }, // 工作内容
        demand: {
            presence: {
                // 是否为空
                allowEmpty: false
            },
            type: "string"
        }, // 要求
    }
    try {
        await validateFunc(rule, moveAboutInfo);
        moveAboutInfo.scan = 0
        return createMoveAbout(moveAboutInfo)
    } catch (e) {
        console.log(e)
        throw new ValidationError("数据验证失败")
    }
}


// 通过ID获取招募信息
exports.getMoveAboutById = async (id) => {
    // 调用此接口后 需要更新一下浏览量
    const result = await findOneMoveAboutById(id);
    if(result){
      const resp = await updateMoveAbout(id, {scan: result.scan + 1})
        console.log(resp)
        result.scan = result.scan + 1
    }
    return result
}

// 分页获取招募信息
exports.getMoveAboutByPage = (query) => {
    return findMoveAboutByPage(query);
}


// 修改招募信息
exports.editMoveAbout = (id, info) => {
    return updateMoveAbout(id, info)
}
